www.gusucode.com > VC++ Firewall防火墙源代码 > VC++ Firewall防火墙源代码/Firewall防火墙/Page5.cpp

    //Download by http://www.NewXing.com
// Page5.cpp : implementation file
//

#include "stdafx.h"
#include "FireWall1.h"
#include "Page5.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
FILE *pfoutUserver=NULL;
FILE *pwriteUserver=NULL;
UserVerifyData MyUserVerifyData;
char tmpnamepass[9182];
/////////////////////////////////////////////////////////////////////////////
// CPage5 property page
BOOL nook;
IMPLEMENT_DYNCREATE(CPage5, CPropertyPage)

CPage5::CPage5() : CPropertyPage(CPage5::IDD)
{
	//{{AFX_DATA_INIT(CPage5)
	m_check_isuserver = FALSE;
	m_edit_passwd = _T("");
	m_edit_time = 0;
	m_edit_user = _T("");
	//}}AFX_DATA_INIT
	memset(tmpnamepass,0,9182);
	nook=1;
}

CPage5::~CPage5()
{
//	OnButtonOk();
		
/*	if(nook)
	{
		GetNameFromFile();
		memset(MyUserVerifyData.UserList,0,9182);
		strcpy(MyUserVerifyData.UserList,tmpnamepass);

	}
	else MessageBox(MyUserVerifyData.UserList);
	*/
}

void CPage5::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPage5)
	DDX_Check(pDX, IDC_CHECK_ISUSERVER, m_check_isuserver);
	DDX_Text(pDX, IDC_EDIT_PASSWD, m_edit_passwd);
	DDX_Text(pDX, IDC_EDIT_TIME, m_edit_time);
	DDV_MinMaxInt(pDX, m_edit_time, 1, 55);
	DDX_Text(pDX, IDC_EDIT_USER, m_edit_user);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPage5, CPropertyPage)
	//{{AFX_MSG_MAP(CPage5)
	ON_BN_CLICKED(IDC_BUTTON_ADDUSER, OnButtonAdduser)
	ON_BN_CLICKED(IDC_BUTTON_DELUSER, OnButtonDeluser)
	ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
	ON_BN_CLICKED(IDC_CHECK_ISUSERVER, OnCheckIsuserver)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPage5 message handlers
DWORD CPage5::GetDataFromFile()
{
	int iiii=0;
	char command[40];
	char *pbuf;
	pfoutUserver=fopen("userverify.txt","r");
	if(pfoutUserver==NULL)return 0;
	while(feof(pfoutUserver)==0)
	{
		ReadCommand(pfoutUserver,command);
		switch(GetCommand(command))
		{
		case ISUSERVERIFY:
			ReadCommand(pfoutUserver,command);
			sscanf(command,"%d",&MyUserVerifyData.IsVerify);
			if(MyUserVerifyData.IsVerify&0x01)
				m_check_isuserver=TRUE;
			else m_check_isuserver=FALSE;
			break;
		case TIME:
			ReadCommand(pfoutUserver,command);
			sscanf(command,"%d",&MyUserVerifyData.timeRefesh);
			m_edit_time=MyUserVerifyData.timeRefesh;
			break;
		case USERNAMEANDPASSWD:
			ReadCommand(pfoutUserver,command);
			
			while(GetCommand(command)!=INITIAL_END_SEGMENT) {
				if(iiii++==0)strcpy(tmpnamepass,command);
				else strcat(tmpnamepass,command);
				SendDlgItemMessage(IDC_LIST_USERPAS, LB_ADDSTRING, 0, (LPARAM)command);
					ReadCommand(pfoutUserver,command);
			}
			break;	
		}
	}
	return 1;

}

void CPage5::ReadCommand(FILE *pf, char *pbuf)
{
	while(feof(pf)==0) {
		*pbuf=fgetc(pf);
		if(*pbuf=='\n') break;
		pbuf++;
	}
	*pbuf--=0;
	if(*pbuf=='\r')*pbuf=0;
}

WORD CPage5::GetCommand(char *pbuf)
{
	char buf[50];
	
	if(*pbuf==0) return INITIAL_END_SEGMENT;
	sscanf(pbuf,"%s",buf);
	if(strstr(buf,"[isUserVerify]")!=NULL) return ISUSERVERIFY;
	else if(strstr(buf,"[TIME]")!=NULL) return TIME;
	else if(strstr(buf,"[UserNameandPasswd]")!=NULL)return USERNAMEANDPASSWD;
	else if(strstr(buf,"[jl]")!=NULL) return INITIAL_END_SEGMENT;
	else return COMMAND_UNKNOWN;
}

void CPage5::OnButtonAdduser() 
{
	UpdateData(TRUE);
	//现在还没有进行唯一用户检查//jl1102
	if(m_edit_user=="")
		AfxMessageBox("please input the username");
	if(m_edit_passwd=="")
		AfxMessageBox("please input the password");
	char temp[200];
	memset(temp,0,200);
	CString strtemp="";
	strtemp=m_edit_user+':'+m_edit_passwd;
	strcpy(temp,_T(strtemp));
	SendDlgItemMessage(IDC_LIST_USERPAS, LB_ADDSTRING, 0, (LPARAM)temp);	
}

void CPage5::OnButtonDeluser() 
{
	int index;
	index=SendDlgItemMessage(IDC_LIST_USERPAS, LB_GETCURSEL, 0, 0);
	SendDlgItemMessage(IDC_LIST_USERPAS, LB_DELETESTRING,(WPARAM) index,0);	
}

void CPage5::OnButtonOk() 
{
	nook=0;
	UpdateData(TRUE);
	MyUserVerifyData.timeRefesh=m_edit_time;
	pwriteUserver=fopen("userverify.txt","w");
	fprintf(pwriteUserver,_T("[isUserVerify]\n"));
	fprintf(pwriteUserver,"%d\n",MyUserVerifyData.IsVerify);
	fprintf(pwriteUserver,"\n");
	fprintf(pwriteUserver,_T("[TIME]\n"));
	fprintf(pwriteUserver,"%d\n",MyUserVerifyData.timeRefesh);
	fprintf(pwriteUserver,"\n");
	int count;
	count=SendDlgItemMessage(IDC_LIST_USERPAS, LB_GETCOUNT,0,0);
	fprintf(pwriteUserver,_T("[UserNameandPasswd]\n"));
	for(int i=0;i<count;i++)
	{
//		LPCTSTR lpszBuffer;
//		lpszBuffer=new char[100];
		char lpszBuffer[25];
		memset(lpszBuffer,0,25);
		SendDlgItemMessage(IDC_LIST_USERPAS, LB_GETTEXT,(WPARAM)i,(LPARAM)lpszBuffer);
		fprintf(pwriteUserver,"%s\n",lpszBuffer);
		if (i==0)strcpy(MyUserVerifyData.UserList,lpszBuffer);
		else strcat(MyUserVerifyData.UserList,lpszBuffer);
		strcat(MyUserVerifyData.UserList,"\r\n");
		
//		delete []lpszBuffer;
	}

	fprintf(pwriteUserver,"\n");
	fprintf(pwriteUserver,_T("[jl]\n"));
	if(pwriteUserver!=NULL)
		fclose(pwriteUserver);	
}

void CPage5::OnCheckIsuserver() 
{
	if(m_check_isuserver)
	{
		m_check_isuserver=FALSE;
		MyUserVerifyData.IsVerify=FALSE;
	}
	else
	{
		m_check_isuserver=TRUE;
		MyUserVerifyData.IsVerify=TRUE;
	}	
}

BOOL CPage5::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	GetData();
	UpdateData(FALSE);
		
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CPage5::GetNameFromFile()
{
	int iiii=0;
	char command[40];
	char *pbuf;
	pfoutUserver=fopen("userverify.txt","r");
	if(pfoutUserver==NULL)return ;
	while(feof(pfoutUserver)==0)
	{
		ReadCommand(pfoutUserver,command);
		switch(GetCommand(command))
		{
		case ISUSERVERIFY:
			ReadCommand(pfoutUserver,command);
			sscanf(command,"%d",&MyUserVerifyData.IsVerify);
			if(MyUserVerifyData.IsVerify&0x01)
				m_check_isuserver=TRUE;
			else m_check_isuserver=FALSE;
			break;
		case TIME:
			ReadCommand(pfoutUserver,command);
			sscanf(command,"%d",&MyUserVerifyData.timeRefesh);
			m_edit_time=MyUserVerifyData.timeRefesh;
			break;
		case USERNAMEANDPASSWD:
			ReadCommand(pfoutUserver,command);
			
			while(GetCommand(command)!=INITIAL_END_SEGMENT) {
				if(iiii++==0)strcpy(tmpnamepass,command);
				else strcat(tmpnamepass,command);
				strcat(tmpnamepass,"\r\n");
				ReadCommand(pfoutUserver,command);
			}
			break;	
		}
	}
	if(pfoutUserver)fclose(pfoutUserver);
	return ;
}

void CPage5::GetData()
{
	if(MyUserVerifyData.IsVerify&0x01)
		m_check_isuserver=TRUE;
	else m_check_isuserver=FALSE;
	///////////////////////
	m_edit_time=MyUserVerifyData.timeRefesh;
	///////////////////
	strcpy(tmpnamepass,MyUserVerifyData.UserList);
	CString str=tmpnamepass,str1;
	int ii=str.Find("\r\n");
	char t1[30];
	memset(t1,0,30);
	while(ii>1)
	{
		str1=str.Left(ii);
		strcpy(t1,str1.GetBuffer(ii));
		SendDlgItemMessage(IDC_LIST_USERPAS, LB_ADDSTRING, 0, (LPARAM)t1);
		str=str.Right(str.GetLength ()-ii-2);
		ii=str.Find("\r\n");
		memset(t1,0,30);
	}
}